package cn.weakup.designpattern.d_behavior.strategy.unusepattern;

/**
 * @author lixj
 * @version 1.0.0
 * @date 2022/6/2
 * @desc 优惠折扣计算接⼝
 * 优惠券类型；
 *     1. 直减券
 *     2. 满减券
 *     3. 折扣券
 *     4. n元购
 */
public class CouponDiscountService {
    /**
     * 优惠折扣计算方法
     * @param type 优惠类型
     * @param typeContent 优惠类型对应的优惠内容（满减金额、直减金额，折扣等）
     * @param totalPrice 商品原总价
     * @param typeExt 优惠类型对应的扩展内容（满减的需要满的金额等）
     * @return
     */
    public static double discountAmount(int type, double typeContent, double
            totalPrice, double typeExt) {
        // 1. 直减券
        if (1 == type) {
            return totalPrice - typeContent;
        }
        // 2. 满减券
        if (2 == type) {
            if (totalPrice < typeExt) return totalPrice;
            return totalPrice - typeContent;
        }
        // 3. 折扣券
        if (3 == type) {
            return totalPrice * typeContent;
        }
        // 4. n元购
        if (4 == type) {
            return typeContent;
        }
        return 0D;
    }

    public static void main(String[] args) {
        // 测试直减算法
        System.out.println(discountAmount(1, 10D, 100D, 0D));
    }
}
